//passport 帮你处理登录 退出 验证的逻辑
import passport from 'koa-passport'
import LocalStrategy from 'passport-local'
import UserModel from '../../dbs/models/users'

passport.use(new LocalStrategy(async function(username,password,done) {
    // 条件
    let where = {
        username: username
    };
    // 去数据库中取数据
    let result = await UserModel.findOne(where)
    if (result != null) {
        if (result.password === password) {
            return done(null,result)
        }
        else {
            return done(null,false,'密码错误')
        }
    }
    else {
        return done(null,false,'用户名不存在')
    }
}))

// 每次进来都序列化验证
// 序列化  session
passport.serializeUser(function(user,done) {
    done(null,user)
})

// 反序列化  取数据从session中取
passport.deserializeUser(function(user,done) {
    return done(null,user)
})

export default passport